// 通过vuex实现状态管理
import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

const actions = { // 用于异步修改
}

const getters = { // 后端传过来的数据，如果需要做一些处理就在getter里面写
}

const mutations = { // 用于处理同步数据修改
    // 将token保存到sessionStorage里，token表示登陆状态
    SET_TOKEN: (state, data) => {
        // state不占用参数位置，不用传入state，是全局的
        state.token = data
        window.sessionStorage.setItem('token', data)
    },
    // 登出
    LOGOUT: (state) => {
        // 登出的时候要清除token
        state.token = null
        window.sessionStorage.removeItem('token')
    }
}

const state = { // 存放后端传过来的原生数据
    token: window.sessionStorage.getItem('token') // 初始化时用sessionStorage.getItem('token'),这样子刷新页面就无需重新登录
}

// 创建Vuex实例
export default new Vuex.Store({
    actions,
    getters,
    mutations,
    state
})
